System tests: Add configurable simulation timeout per test case#735
Conversation
51e92a0 to
1ffd4f0
Compare
|
Hi @MakisH, the timeout is currently attached to ReferenceResult since that's where per-test configuration lives. Happy to move it to a dedicated field or separate dataclass if you prefer a different structure. Also kept BUILD_TIMEOUT fixed since build time feels infrastructure-dependent rather than simulation-dependent — let me know if you'd like that configurable too. |
|
This pull request has been mentioned on preCICE Forum on Discourse. There might be relevant details there: https://precice.discourse.group/t/gsoc-2026-aditya-gupta/2773/4 |
MakisH
left a comment
There was a problem hiding this comment.
Thanks for the PR! This is going in a good direction, but needs some further refactoring and cleanup. See some comments.
e4b349c to
d7345a4
Compare
There was a problem hiding this comment.
Pull request overview
Adds support for configuring a per-test-case timeout in system tests, intended to replace relying on a single global timeout value.
Changes:
- Adds a
timeoutscollection toTestSuiteand plumbs a per-testtimeoutthrough the CLI runners intoSystemtest. - Updates
Systemtestto use the per-test timeout for solver run and field-compare phases. - Documents the new YAML field and adds a changelog entry.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| tools/tests/systemtests/TestSuite.py | Stores per-test timeout values from tests.yaml alongside existing per-case settings. |
| tools/tests/systemtests/Systemtest.py | Uses self.timeout for docker compose up and field-compare timeouts; changes how GLOBAL_TIMEOUT is defined. |
| tools/tests/systemtests.py | Passes per-test timeout into Systemtest instances. |
| tools/tests/generate_reference_results.py | Passes per-test timeout into Systemtest during reference generation. |
| tools/tests/README.md | Documents the timeout field and defaulting behavior. |
| changelog-entries/735.md | Adds a user-facing changelog note about the new timeout field. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
|
Adds an optional
timeoutfield to entries intests.yaml, allowing per-test timeout configuration instead of a single hardcoded global value.Closes #371
Changes
systemtests/TestSuite.py— parses optionaltimeoutfromtests.yaml; validates that the value is positivesystemtests/Systemtest.py— solver run and fieldcompare now use the per-test configured timeout; sets the default timeout to 900tools/tests/README.md— documented the new optional field with an exampleExample usage in
tests.yamlBackward compatible — existing entries without
timeoutuse the previous default of 1200.Checklist
changelog-entries/735.md